package top.kaoshanji.p1ch03b;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;

/**
 * 代码清单-p1ch03b-76页b：在Condition中检查是否存在magic属性
 * 实现 Condition 接口，可以判断条件是否成立
 * @author kaoshanji
 * ^_^
 * create time 2025/4/23 9:37
 */
public class MagicExistsCondition implements Condition {

    /**
     * 判断条件是否成立
     * @param conditionContext 聚合很多的对象
     * @param annotatedTypeMetadata 聚合注解方面的对象
     * @return 如果是true，就匹配成功
     */
    @Override
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
        Environment environment = conditionContext.getEnvironment();

        // 判断在环境中是否存在 magic 属性
        return environment.containsProperty("magic");
    }

}
